/**
 * 访问器的使用
 * */
const sym = Symbol('sym')
class User{

    constructor(name){
        this.data = {name}
        this[sym] = 'hahhahhhhhhh, 你访问不到我的哦'
    }

    set name(value){
        // 如果输入的是空的， 那么就会报空异常， 可以抛出的是TypeError， Error等
        if(value.trim() === '') throw new TypeError('please enter not null')
        this.data.name = value
    }

    get name(){
        return this.data.name
    }
}

// 这里就只有一个name属性， 其他的访问不到的
const user = new User('hahha')

// for (const userKey in user) {
//     console.log(userKey) // 只有一个data属性， 其他属性无法访问
// }

for(const userkey of Object.getOwnPropertySymbols(user)){
    console.log(userkey)
}


for (const iteKey of Reflect.ownKeys(user)){
    console.log(user[iteKey])
}
